<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 * @author   howe <howe1995@163.com>
 */

namespace App\Constant;

class ApiCodeEnum
{
    public const SUCCESS_DEFAULT = '200001|操作成功'; // 操作成功

    public const FAILED_DEFAULT = '400001|操作失败'; // 操作失败

    // 业务操作正确码：1xx、2xx、3xx 开头，后拼接 3 位
    // 200 + 001 => 200001，也就是有 001 ~ 999 个编号可以用来表示业务成功的情况，当然你可以根据实际需求继续增加位数，但必须要求是 200 开头
    // 举个栗子：你可以定义 001 ~ 099 表示系统状态；100 ~ 199 表示授权业务；200 ~ 299 表示用户业务。..
    public const SERVICE_INIT_SUCCESS = '200100'; // 初始化成功

    public const SERVICE_REGISTER_SUCCESS = '200101|注册成功'; // 注册成功

    public const SERVICE_LOGIN_SUCCESS = '200102|登录成功'; // 登录成功

    public const SERVICE_BIND_SUCCESS = '200103|绑定成功'; // 绑定成功

    public const SERVICE_CHANGE_PASSWORD_SUCCESS = '200104|修改密码成功'; // 修改密码成功

    public const SERVICE_PAID_SUCCESS = '200105|订单已支付'; // 订单已支付

    public const PAY_SUCCESS = '200106|支付成功'; // 支付成功

    // 客户端错误码：400 ~ 499 开头，后拼接 3 位
    public const CLIENT_PARAMETER_ERROR = '400002|参数有误'; // 参数有误

    public const CLIENT_DATA_EXIST = '400003'; // 数据已存在

    public const CLIENT_DATA_NOT_FOUND = '400004|数据不存在'; // 数据不存在

    public const CLIENT_TOKEN_UNAVAILABLE = '400006|token无效'; // token无效

    public const CLIENT_NOT_FOUND_HTTP_ERROR = '400007|请求失败'; // 请求失败

    public const CLIENT_TRANSFER_ERROR = '400203'; // 数据转换失败

    public const CLIENT_PAY_ERROR = '400205|支付失败'; // 支付失败

    public const CLIENT_IOS_BLUR_CLOSED_ERROR = '400206'; // 混淆已关闭

    // 401 - 访问被拒绝
    public const CLIENT_HTTP_UNAUTHORIZED_EXPIRED = '401200|账号信息已过期，请重新登录'; // 账号信息已过期，请重新登录

    // 403 - 禁止访问
    public const CLIENT_ACTION_COUNT_ERROR = '400302'; // 操作频繁

    // 405 - 用来访问本页面的 HTTP 谓词不被允许（方法不被允许）
    public const CLIENT_METHOD_HTTP_TYPE_ERROR = '405001|请求方式错误'; // HTTP请求类型错误

    public const CLIENT_METHOD_HTTP_RUL_ERROR = '405002|请求地址错误'; // HTTP请求地址错误

    public const CLIENT_BOUND_EMAIL = '400207'; // 该邮箱已绑定过其他账号

    public const CLIENT_BOUND_MOBILE = '400208'; // 该手机号已绑定过其他账号

    public const CLIENT_BOUND_APPLE = '400209'; // 该Apple ID 已绑定过其他账号

    public const CLIENT_BOUND_FACEBOOK = '400210'; // 该Facebook ID 已绑定过其他账号

    public const CLIENT_BOUND_GOOGLE = '400211'; // 该Google ID 已绑定过其他账号

    public const CLIENT_GOOD_ID_NO_EXIST = '400212'; // 商口ID不存在

    public const CLIENT_CONNECT_TOKEN_UNAVAILABLE = '400010'; // connect token无效

    public const CLIENT_GAME_ROLE_ERR = '404001|角色不存在';

    // 服务端操作错误码：500 ~ 599 开头，后拼接 3 位
    public const SYSTEM_ERROR = '500001'; // 系统错误

    public const SYSTEM_UNAVAILABLE = '500002'; // 系统不可用

    public const SYSTEM_CONFIG_ERROR = '500005'; // 系统配置有误

    // 业务操作错误码（外部服务或内部服务调用。..）
    public const SERVICE_WECHAT_ALREADY_EXISTS = '500101|微信号已存在'; // 微信号已存在

    public const SERVICE_LOGIN_ERROR = '500102|登录失败'; // 登陆失败

    public const SERVICE_ACCOUNT_OR_PASSWORD_ERROR = '500103|账号或密码错误'; // 账号或密码错误.

    public const SERVICE_PASSWORD_ERROR = '500104|旧密码不正确'; // 旧密码不正确.

    public const SERVICE_ACCOUNT_NOT_FOUND = '500205|账号不存在'; // 账号不存在

    public const SERVICE_ACCOUNT_DISABLED = '500206|账号被禁'; // 账号被禁

    public const SERVICE_ACCOUNT_CANCEL = '500207|账号已注销'; // 账号已注销.

    public const SERVICE_CODE_ERROR = '500208|验证码不正确'; // 验证码不正确

    public const SERVICE_ACCOUNT_ALREADY_EXISTS = '500209|账号已存在'; // 账号已存在.

    public const SERVICE_ACCOUNT_MONEY_NOT_ENOUGH = '2003001|账号余额不足'; // 账号余额不足.

    public const SERVICE_FRIEND_ALREADY_EXISTS = '500210|好友已存在'; // 好友已存在.

    public const SERVICE_FRIEND_NOT_EXISTS = '500211|对方不是你的好友'; // 对方不是你的好友.

    public const SERVICE_GROUP_USER_NOT_EXISTS = '500212|你不是群成员';

    public const SERVICE_GROUP_USER_NO_PERM = '500213|群成员没权限操作';

    public const SERVICE_REGISTER_STOP = '500214|停止注册';

    // 400 支付
    public const PAY_TIME_ERROR = '500404'; // 时间异常

    public const PAY_TIMEOUT_ERROR = '500405'; // 超过限定时间

    public const PAY_TRADE_ID_ERROR = '500406'; // 交易号有误

    public const PAY_ORDER_REPEATED_SUBMIT = '500407'; // 订单重复提交
}
